<?php
/**
 * Description of sessionclass
 *
 * @author del Valle, Federico <quaidy@gmail.com>
 */
class sesion {
    public static function esta_iniciada() {
      $nombre = configManager::obtener("keys", "session");
      if (!isset ($_SESSION[$nombre]["id"])) {
        return false;
      } else {
        return true;
      }
    }

    public static function grabar($variable,$valor) {
      $variable = strtoupper($variable);
      $nombre = configManager::obtener("keys", "session");
      $_SESSION[$nombre][$variable] = $valor;
    }

    public static function get($variable) {
      $variable = strtoupper($variable);
      $nombre = configManager::obtener("keys", "session");
      if (isset($_SESSION[$variable])) {
        return $_SESSION[$variable];
      } elseif (isset($_SESSION[$nombre][$variable])) {
        return $_SESSION[$nombre][$variable];
      } else {
        return false;
      }
    }

    public static function set($variable,$valor){
      self::grabar($variable, $valor);
    }

    /**
     * Inicia la sesion y carga una entidad en la session
     * @param string $key Valor por el cual se va a cargar la entidad
     * @param string $entidad Nombre de la entidad
     */
    public static function iniciar($key,$entidad) {
      $nombre = configManager::obtener("keys", "session");
      $_SESSION[$nombre] = array();
      $ent = new $entidad();
      $ent->load($key);

      $fields = $ent->get_fields();

      foreach ($fielda as $field => $value) {
          $_SESSION[$nombre][$field] = $value;
      }
      
    }
    
    public static function logout() {
      session_destroy();
    }
}
?>
